// 'use strict';
//
// // 1.控制器是否存在
// // 2.方法是否存在
// // 3.成功响应时，验证返回空结果和非空结果处理
// // 4.验证响应失败处理
//
// describe('fbdApp rules controller', function() {
//   var $rootScope, $controller, $scope;
//   var $rule, $shareData;
//   var $q;
//
//   beforeEach(module('fbdApp.ruleModule'));
//   beforeEach(inject(function(_$controller_, _$rootScope_, _$q_,
//     _ruleService_, _shareData_) {
//     $rootScope = _$rootScope_;
//     $scope = _$rootScope_.$new();
//     $rule = _ruleService_;
//     $shareData = _shareData_;
//     $controller = _$controller_;
//     $q = _$q_;
//     $shareData.fileName = 'ab1230c3.fbd'
//   }));
//
//   function createController() {
//     return $controller('rulesCtrl', {
//       $scope: $scope,
//       ruleService: $rule,
//       shareData: $shareData
//     });
//   }
//
//   it('should be defined', function(done) {
//     var controller = createController();
//     expect(controller).not.toBe(null);
//     expect($scope.modes.length).toBe(3);
//     expect($scope.test).toBeDefined();
//     expect($scope.fileName).toBe($shareData.fileName);
//     // expect($scope.save).toBeDefined();
//     return done();
//   });
//
//   describe('test method', function() {
//     it('success response and res.length > 0', function(done) {
//       var controller = createController();
//       var deferred = $q.defer();
//
//       var fakedData = {
//         rule: {
//           mode: 'signs',
//           beginText: '<<<<',
//           type: 1,
//           expression: '1232C'
//         },
//         result: [{
//           text: '<<<<11',
//           location: [10, 6]
//         }, {
//           text: '<<<<22',
//           location: [20, 6]
//         }]
//       };
//
//       var _addData_ = {
//         mode: 'signs',
//         beginText: '<<<<',
//         type: 1,
//         expression: '1232C'
//       };
//       deferred.resolve(fakedData);
//
//       spyOn($rule, 'test').and.returnValue(deferred.promise);
//
//       $scope.test('http://postRules', '');
//       $scope.$apply();
//
//       expect($scope.showRuleResult).toBe(true);
//       expect($scope.testRuleResult.info).toBe('共有2条记录');
//       expect($scope.testRuleResult.data).toEqual(fakedData.result);
//       // expect($scope.addData).toEqual(_addData_);
//       return done();
//     });
//
//     it('success response and res.length = 0', function(done) {
//       var controller = createController();
//       var deferred = $q.defer();
//
//       var fakedData = {
//         rule: {
//           mode: 'signs',
//           beginText: '<<<<',
//           type: 1,
//           expression: '1232C'
//         },
//         result: []
//       };
//
//       deferred.resolve(fakedData);
//
//       spyOn($rule, 'test').and.returnValue(deferred.promise);
//
//       $scope.test('http://postRules', '');
//       $scope.$apply();
//
//       expect($scope.showRuleResult).toBe(true);
//       expect($scope.testRuleResult.info).toBe('无任何结果，请重新修改规则');
//       return done();
//     });
//
//     it('error response', function(done) {
//       var controller = createController();
//       var deferred = $q.defer();
//
//       var fakedData = '参数错误';
//       deferred.reject(fakedData);
//
//       spyOn($rule, 'test').and.returnValue(deferred.promise);
//
//       $scope.test('http://postRules', '');
//       $scope.$apply();
//
//       expect($scope.showRuleResult).toBe(true);
//       expect($scope.testRuleResult.info).toBe('参数错误，请重新发送请求');
//       return done();
//     });
//   });
//
//   describe('save method', function() {
//     it('success response', function(done) {
//       var controller = createController();
//       var deferred = $q.defer();
//
//       var fakedData = {
//         __v: 0,
//         key: 'title',
//         name: 'title',
//         mode: 'signs',
//         type: 1,
//         beginText: '<<<<',
//         id: '5799b175643e9ddc0aca5211',
//         expression: '125433,*,0124587'
//       };
//       deferred.resolve(fakedData);
//
//       spyOn($rule, 'save').and.returnValue(deferred.promise);
//
//       $scope.save('http://addRules', '');
//       $scope.$apply();
//
//       expect($scope.isSaved).toBe(true);
//       expect($scope.savedRule).toBe(fakedData);
//       expect($scope.saveInfo).toBe('保存成功！');
//       return done();
//     });
//
//     it('error response', function(done) {
//       var controller = createController();
//       var deferred = $q.defer();
//
//       var wrongRes = {
//         name: 'MongoError',
//         code: 11000,
//         err: '关键词重复'
//       };
//       deferred.reject(wrongRes);
//
//       spyOn($rule, 'save').and.returnValue(deferred.promise);
//
//       $scope.save('http://addRules', '');
//       $scope.$apply();
//
//       expect($scope.isSaved).toBe(false);
//       expect($scope.saveInfo).toBe('保存失败！原因：关键词重复');
//       return done();
//     });
//   });
//
// });
